﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using radnaVerzija.Interfejsi;
using MySql.Data.MySqlClient;

namespace radnaVerzija
{
    partial class DAL
    {
        public class SpravaDAO : IDaoCrud<Sprava>
        {
            protected MySqlCommand komanda;

            public long create(Sprava entitet)
            {
                try
                {
                    komanda = new MySqlCommand("insert into Sprave values (@naziv, @uFunkciji);", konekcija);
                    komanda.Parameters.AddWithValue("@naziv", entitet.Naziv);
                    komanda.Parameters.AddWithValue("uFunkciji", entitet.UFunkciji);
                    komanda.ExecuteNonQuery();
                    return komanda.LastInsertedId;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            public Sprava read(Sprava entitet)
            {
                try
                {
                    komanda = new MySqlCommand("select * from Sprave where idSprave = @id;", konekcija);
                    komanda.Parameters.AddWithValue("@id", entitet.IdSprave);
                    MySqlDataReader citac = komanda.ExecuteReader();
                    Sprava sprava = null;
                    citac.Read();
                    sprava = new Sprava(citac.GetString("naziv"),
                                        citac.GetBoolean("uFunkciji"),
                                        entitet.IdSprave);
                    citac.Close();
                    return sprava;
                }
                catch (Exception ex)
                {
                    throw ex;
                }

            }
            public Sprava update(Sprava entitet)
            {
                try
                {
                    komanda = new MySqlCommand("update Sprave set naziv = @naziv, uFunkciji = @uFunkciji where idSprave = @id);", konekcija);
                    komanda.Parameters.AddWithValue("@naziv", entitet.Naziv);
                    komanda.Parameters.AddWithValue("@uFunkciji", entitet.UFunkciji);
                    komanda.Parameters.AddWithValue("@id", entitet.IdSprave);
                    komanda.ExecuteNonQuery();
                    return read(entitet);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            public void delete(Sprava entitet)
            {
                try
                {
                    komanda = new MySqlCommand("delete from Sprave where idSprave = @id;", konekcija);
                    komanda.Parameters.AddWithValue("@id", entitet.IdSprave);
                    komanda.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

        }
    }
}
